非線形回帰分析 - 14

指数関数のパラメータの推定

a0,をシフト

\(\Large \displaystyle y_i = a_0 \ Exp (- a_1 x_i) \)

 

a0       9.7569 9.8569 9.9569 10.0569 10.1569 10.2569 10.3569
δ       -0.3 -0.2 -0.1 0 0.1 0.2 0.3
a1       0.4990 0.5027 0.5063 0.5099 0.5134 0.5170 0.5205
                     
                     
i x y   \( \hat{y} \)
1 0 10   9.7569 9.8569 9.9569 10.0569 10.1569 10.2569 10.3569
2 2 4   3.5963 3.6069 3.6172 3.6274 3.6374 3.6473 3.6570
3 3 2   2.1834 2.1818 2.1802 2.1785 2.1768 2.1750 2.1731
4 4 1   1.3256 1.3198 1.3141 1.3084 1.3027 1.2970 1.2913
5 6 0.5   0.4886 0.4830 0.4774 0.4719 0.4665 0.4612 0.4560
6 9 0.1   0.1093 0.1069 0.1045 0.1022 0.1000 0.0978 0.0957
         
S (\(y_i - \hat{y} \)の平方和)       0.3619 0.3107 0.2800

0.2698
(Se)

0.2800 0.3107 0.3618
dS (Seとの差分)       0.0921 0.0409 0.0102 0 0.0102 0.0409 0.0920
                     

 

・残差平方和

推定値からの残差

\(\Large \displaystyle Se = \sum_{i=1}^{n} \left[ y_i -\hat{a_0} \ Exp(- \hat{a_1} \ x_i) \right]^2 \)

a0をシフトさせたときの,推定値からの残差

\(\Large \displaystyle Se = \sum_{i=1}^{n} \left[ y_i -a_0 \ Exp(- \hat{a_1} \ x_i) \right]^2 \)

であり,a0を,δ,だけシフトさせて,固定し,その際の a1の推定値をソルバーで推定しました.

dS,を見ていただけるとわかるように,推定値,Seが一番小さく,ほぼ左右対称に増加していることがわかります.

グラフ化すると,

のように,二乗+定数できれいに近似できます.

二次曲線の近似においてもきれいに近似でき,

\(\Large \displaystyle y = 0.2698 + 1.0226 \ \delta^2 \)

ここで,分散値は,

・分散

\(\Large \displaystyle Ve = \frac{1}{n-2} \sum_{i=1}^{n} \left[ y_i -\hat{a_0} \ Exp(- \hat{a_1} \ x_i) \right]^2 = \frac{Se}{n-2} = \frac{0.2698}{6-2} = 0.067454 \)

であり(a0,a1,の二つのパラメータが2つあるので,自由度は,n-2),

\(\Large \displaystyle 1.0226 \ \delta^2 = 0.067454 \)

となるδがSEとなるので,

\(\Large \displaystyle \delta^2 = \frac{ 0.067454}{1.0226} = 0.06897 \)

\(\Large \displaystyle SE_{a_0} = \sqrt{\delta^2} =\color{red}{0.2568} \)

と推定できます.

 

・Rによる推定

Rでの近似を行ってみると,

プログラムは,

xx <- c(0,2,3,4,6,9)
yy <- c(10,4,2,1,0.5,0.1)
plot(xx,yy)
fm<-nls(yy~a0*exp(-a1*xx),start=c(a0=10,a1=0.5),trace=TRUE)
summary(fm)

で,結果は,

Parameters:
Estimate Std. Error t value Pr(>|t|)
a0 10.0569 0.25753 39.05 2.57E-06 ***
a1 0.50987 0.02455 20.77 3.18E-05 ***

となり,Kyplotにおいても,

推定値 標準誤差(SE)
A1 10.05689 0.257527
A2 0.50987 0.024553

と同じ結果となり,今回の推定値と,ほぼ一致,します.

微妙に異なるのが気になりますが....

「統計解析の初歩」,の「1.2 非線形最小2乗法の基本的な考え方」には,

δのずらした値0.5 を変えると結果は異なり、近似標準誤差の精度が変わる
統計パッケージにより、近似標準誤差の値は幾分異なる

とあります.ここで,”0.5”,がどこから出てきたかはわかりません.そもそも横軸(x軸)の範囲に依存しちゃいますし..

そこで,σをとる値(±での平均値)でどう推定値が変わるかを調べてみました.その結果が,

とどのδでもRなどの推定値より下回っていました....謎です...

次に,指数関数の肩のパラメータ,a1について,確認してましょう.

 

l tr